package com.dz.lm.service.comp.user;

import com.dz.lm.common.dto.CompUserDTO;
import com.dz.lm.common.dto.PageDto;
import com.dz.lm.common.dto.UserApplyDTO;
import com.dz.lm.common.dto.UserProductDTO;
import com.dz.lm.common.exception.ServiceException;

import java.util.List;
import java.util.Map;

public interface CompUserService {
    /**
     *
     * @param phone 手机号
     * @param password 密码
     * @param compId 公司
     * @param roleId 部门角色
     * @return
     * @throws ServiceException
     */
    int register(String phone , String password , int compId ,int roleId) throws ServiceException;

    /**
     * 登录
     * @param userName
     * @param password
     * @param compId
     * @return
     * @throws ServiceException
     */
    Map login(String userName ,String password ,int compId) throws ServiceException;
    /**
     * 审核
     * @param pid
     * @param satuts 0 未审核 1审核通过  2审核未通过
     * @return
     * @throws Exception
     */
    int reivew(int pid ,int satuts ,int roleId)throws ServiceException;


    int delete(int pid) throws ServiceException;

    CompUserDTO get(int userId , int compId ,int pid) throws ServiceException;
    /**
     *
     * @param compId
     * @param roleId 角色部门
     * @param type 0 未审核 1审核通过  2审核未通过
     * @return
     * @throws ServiceException
     */
    PageDto query(int pageNum , int rows , int compId , int roleId , int type)throws ServiceException;

    /**
     * 用户管理查询
     * @param pageNum
     * @param rows
     * @param name
     * @param roleId
     * @param province
     * @param status 1 待接单 2拒绝
     * 3-已提交 4已接单
     * @return
     * @throws ServiceException
     */
    PageDto queryApply(int pageNum , int rows ,int userId ,int compId,String name ,int roleId , String province , int status) throws ServiceException;

    UserApplyDTO getApplyDetail(int applyId , int compId) throws ServiceException;
    /**
     * 代理管理
     * @param pageNum
     * @param rows
     * @param name
     * @param roleId
     * @param province
     * @param agentType
     * @return
     * @throws ServiceException
     */
    PageDto queryAgent(int pageNum ,int rows,int userId ,int compId ,String name ,String mobilePhone,int roleId , String province , String prouductName,String time,int agentType ) throws ServiceException;

    UserProductDTO getAgentDetail(int productId , int compId)throws ServiceException;

    /**
     * 代理处推送信息
     * @param productId
     * @param compId
     * @return
     * @throws Exception
     */
    PageDto getAgentApply(int pageNum, int rows ,int productId , int compId , int userId) throws ServiceException;


}
